/**
 * 
 */
package sourceFiles;

/**
 * A Class representing all the data not required for the correct operation of
 * the Rides, and that the system needs to maintain for the consistent operation
 * of the Park
 * 
 * @author LASO-Team
 * 
 */
public abstract class RideEntry {

	private final String rideName;
	private final Integer rideID;
	private final Double price;

	/**
	 * A simple constructor for the ride entry
	 * 
	 * @param rideName
	 *            the name of the ride.
	 * @param rideID
	 *            the ID of the ride.
	 * @param price
	 *            the price of a ticket to enter the ride.
	 */
	public RideEntry(String rideName, Integer rideID, Double price) {
		super();
		this.rideName = rideName;
		this.rideID = rideID;
		this.price = price;
	}

	/**
	 * Getter for the name of the ride.
	 * 
	 * @return the name of the ride.
	 */
	public String getRideName() {
		return new String(rideName);
	}

	/**
	 * Getter for the id of the ride.
	 * 
	 * @return the id of the ride.
	 */
	public Integer getRideID() {
		return new Integer(rideID);
	}

	/**
	 * Getter for the cost of a ticket for the ride.
	 * 
	 * @return the cost of a ticket for the ride.
	 */
	public Double getPrice() {
		return new Double(price);
	}

	/**
	 * Query for the type of the ride in question (extreme or not)
	 * 
	 * @return
	 */
	public abstract Boolean isExtreme();
}
